-- @Author: 作者QQ201878826
-- @Date:   2022-05-02 23:55:44
-- @Last Modified by:   作者QQ381990860
-- @Last Modified time: 2022-06-04 21:18:10

--======================================================================--
-- @作者: QQ381990860
-- @创建时间:   2019-12-03 02:17:19
-- @Last Modified time: 2022-04-29 08:15:45
--======================================================================--
function 任务控制类:创建地府救猴王(id)
		if 玩家数据[id].队伍 == 0 then
			发送数据(玩家数据[id].连接id, 7, "#y/本副本需要队伍成员数达到五人才可开启")
		elseif #队伍数据[玩家数据[id].队伍].队员数据 < 1  and DebugMode == false then
			发送数据(玩家数据[id].连接id, 7, "#y/本副本需要队伍成员数达到五人才可开启")
		else
			self.条件提示 = ""
			
            self.最高等级= 0
			for n = 1, #队伍数据[玩家数据[id].队伍].队员数据 do
			
			      if 玩家数据[队伍数据[玩家数据[id].队伍].队员数据[n]].角色.飞升 ~= true   and DebugMode== false then 
		             广播队伍消息(id, 7, "#y/队伍中有成员未飞升,不能进入")
		           return 0
		          end
				if 活动数据.本日副本[队伍数据[玩家数据[id].队伍].队员数据[n]] ==nil then
					if 	活动数据.本日副本[队伍数据[玩家数据[id].队伍].队员数据[n]]==nil then 
            		    活动数据.本日副本[队伍数据[玩家数据[id].队伍].队员数据[n]] = {地府救猴王 =10,三打白骨精 =12,玄武门之变 =10,神魔前线 =16}
				    end    
				end
                
				if 玩家数据[队伍数据[玩家数据[id].队伍].队员数据[n]].角色.等级 < 129 and DebugMode== false then
					self.条件提示 = "#y/" .. 玩家数据[队伍数据[玩家数据[id].队伍].队员数据[n]].角色.名称 .. "等级未达到129级"
				-- elseif 活动数据.本日副本[队伍数据[玩家数据[id].队伍].队员数据[n]].地府救猴王 < 1 then
					-- self.条件提示 = "#y/" .. 玩家数据[队伍数据[玩家数据[id].队伍].队员数据[n]].角色.名称 .. "今日已经奖励次数为0,请明日再来"
				end
				检查高级副本(队伍数据[玩家数据[id].队伍].队员数据[n])
				
			end

			
			if self.条件提示 ~= ""  then
				发送数据(玩家数据[id].连接id, 7, self.条件提示)
			else
			
			    地图处理类:Jump(id,7100,114,108)
				--for n = 1, #队伍数据[玩家数据[id].队伍].队员数据 do
		          self:开启地府救猴王(id)
				--end
              
				
			end
		end
end
function 任务控制类:开启地府救猴王(id)


	local wjfbid = tonumber(玩家数据[id].id .. "7100")
	任务数据[wjfbid] = {
		类型 = "地府救猴王1",
		数字id = {},

	}
	self.任务id组 = {}
	
		for n = 1, #队伍数据[玩家数据[id].队伍].队员数据 do
			self.任务id组[#self.任务id组 + 1] = 队伍数据[玩家数据[id].队伍].队员数据[n]
		end
	
	for n = 1, #self.任务id组 do
		self.任务临时id1 = 角色处理类:生成任务id(玩家数据[self.任务id组[n]])
		玩家数据[self.任务id组[n]].角色.任务数据[self.任务临时id1] = wjfbid
		任务数据[wjfbid].数字id[#任务数据[wjfbid].数字id + 1] = 玩家数据[self.任务id组[n]].id
		发送数据(玩家数据[self.任务id组[n]].连接id, 7, "#y/你成功开启了副本任务，请在120分钟内完成")
		self:刷新追踪任务信息(self.任务id组[n])
	end


end

function 任务控制类:开启地府救猴王2(id)


	local wjfbid = tonumber(玩家数据[id].id .. "7101")
	任务数据[wjfbid] = {
		类型 = "地府救猴王2",
		数字id = {},

	}
	self.任务id组 = {}
	
		for n = 1, #队伍数据[玩家数据[id].队伍].队员数据 do
			self.任务id组[#self.任务id组 + 1] = 队伍数据[玩家数据[id].队伍].队员数据[n]
		end
	
	for n = 1, #self.任务id组 do
		self.任务临时id1 = 角色处理类:生成任务id(玩家数据[self.任务id组[n]])
		玩家数据[self.任务id组[n]].角色.任务数据[self.任务临时id1] = wjfbid
		任务数据[wjfbid].数字id[#任务数据[wjfbid].数字id + 1] = 玩家数据[self.任务id组[n]].id
		self:刷新追踪任务信息(self.任务id组[n])
	end
	
end

function 任务控制类:开启地府救猴王3(id)


	local wjfbid = tonumber(玩家数据[id].id .. "7102")
	任务数据[wjfbid] = {
		类型 = "地府救猴王3",
		数字id = {},

	}
	self.任务id组 = {}
	
		for n = 1, #队伍数据[玩家数据[id].队伍].队员数据 do
			self.任务id组[#self.任务id组 + 1] = 队伍数据[玩家数据[id].队伍].队员数据[n]
		end
	
	for n = 1, #self.任务id组 do
		self.任务临时id1 = 角色处理类:生成任务id(玩家数据[self.任务id组[n]])
		玩家数据[self.任务id组[n]].角色.任务数据[self.任务临时id1] = wjfbid
		任务数据[wjfbid].数字id[#任务数据[wjfbid].数字id + 1] = 玩家数据[self.任务id组[n]].id
		self:刷新追踪任务信息(self.任务id组[n])
	end
	
end

function 任务控制类:开启地府救猴王4(id)


	local wjfbid = tonumber(玩家数据[id].id .. "7103")
	任务数据[wjfbid] = {
		类型 = "地府救猴王4",
		数字id = {},

	}
	self.任务id组 = {}
	
		for n = 1, #队伍数据[玩家数据[id].队伍].队员数据 do
			self.任务id组[#self.任务id组 + 1] = 队伍数据[玩家数据[id].队伍].队员数据[n]
		end
	
	for n = 1, #self.任务id组 do
		self.任务临时id1 = 角色处理类:生成任务id(玩家数据[self.任务id组[n]])
		玩家数据[self.任务id组[n]].角色.任务数据[self.任务临时id1] = wjfbid
		任务数据[wjfbid].数字id[#任务数据[wjfbid].数字id + 1] = 玩家数据[self.任务id组[n]].id
		self:刷新追踪任务信息(self.任务id组[n])
	end
	
end

function 任务控制类:开启地府救猴王5(id)


	local wjfbid = tonumber(玩家数据[id].id .. "7104")
	任务数据[wjfbid] = {
		类型 = "地府救猴王5",
		数字id = {},

	}
	self.任务id组 = {}
	
		for n = 1, #队伍数据[玩家数据[id].队伍].队员数据 do
			self.任务id组[#self.任务id组 + 1] = 队伍数据[玩家数据[id].队伍].队员数据[n]
		end
	
	for n = 1, #self.任务id组 do
		self.任务临时id1 = 角色处理类:生成任务id(玩家数据[self.任务id组[n]])
		玩家数据[self.任务id组[n]].角色.任务数据[self.任务临时id1] = wjfbid
		任务数据[wjfbid].数字id[#任务数据[wjfbid].数字id + 1] = 玩家数据[self.任务id组[n]].id
		self:刷新追踪任务信息(self.任务id组[n])
	end
	
	 地图处理类:Jump(id,7100,35,81)
	
end
function 任务控制类:开启地府救猴王6(id)
	local wjfbid = tonumber(玩家数据[id].id .. "7105")
	任务数据[wjfbid] = {
		类型 = "地府救猴王6",
		数字id = {},

	}
	self.任务id组 = {}
	
		for n = 1, #队伍数据[玩家数据[id].队伍].队员数据 do
			self.任务id组[#self.任务id组 + 1] = 队伍数据[玩家数据[id].队伍].队员数据[n]
		end
	
	for n = 1, #self.任务id组 do
		self.任务临时id1 = 角色处理类:生成任务id(玩家数据[self.任务id组[n]])
		玩家数据[self.任务id组[n]].角色.任务数据[self.任务临时id1] = wjfbid
		任务数据[wjfbid].数字id[#任务数据[wjfbid].数字id + 1] = 玩家数据[self.任务id组[n]].id
		self:刷新追踪任务信息(self.任务id组[n])
	end
	
end

function 任务控制类:完成地府救猴王1(id组,任务id,序号)
 for n=1,#id组 do
   if 玩家数据[id组[n]]~=nil then
 
   -- print(id组[n])
    self:地府救猴王奖励(id组[n],1)
	if 角色处理类:GetTaskID(玩家数据[id组[n]],"地府救猴王1")  ~= 0 then 	  
	local 闯关任务id=角色处理类:GetTaskID(玩家数据[id组[n]],"地府救猴王1") 
	-- print("有任务"..id组[n])
	
	
    角色处理类:取消任务(玩家数据[id组[n]],闯关任务id)
    任务数据[闯关任务id]=nil
   
	if 玩家数据[id组[n]].队长  then
	 self:开启地府救猴王2(id组[n])
	 
	 end
	end

  end
 end
end

function 任务控制类:完成地府救猴王3(id组,任务id,序号)
 for n=1,#id组 do
   if 玩家数据[id组[n]]~=nil then
   
     self:地府救猴王奖励(id组[n],2)
if 角色处理类:GetTaskID(玩家数据[id组[n]],"地府救猴王3")  ~= 0 then 	 	 
	local 闯关任务id=角色处理类:GetTaskID(玩家数据[id组[n]],"地府救猴王3") 
	
	
	
    角色处理类:取消任务(玩家数据[id组[n]],闯关任务id)
    任务数据[闯关任务id]=nil
     
	 if 玩家数据[id组[n]].队长  then
	 self:开启地府救猴王4(id组[n])
	
	 end
	end

  end
 end
end

function 任务控制类:完成地府救猴王4(id组,任务id,序号)
 for n=1,#id组 do
   if 玩家数据[id组[n]]~=nil then
 
    self:地府救猴王奖励(id组[n],3)
  if 角色处理类:GetTaskID(玩家数据[id组[n]],"地府救猴王4")  ~= 0 then 	 	 
	local 闯关任务id=角色处理类:GetTaskID(玩家数据[id组[n]],"地府救猴王4") 
	
	 
	
    角色处理类:取消任务(玩家数据[id组[n]],闯关任务id)
    任务数据[闯关任务id]=nil
    
	 if 玩家数据[id组[n]].队长  then
	 self:开启地府救猴王5(id组[n])
	 
	 end
	end

  end
 end
end
function 任务控制类:完成地府救猴王5(id组,任务id,序号)
 for n=1,#id组 do
   if 玩家数据[id组[n]]~=nil then
 
     self:地府救猴王奖励(id组[n],4)
	 
  if 角色处理类:GetTaskID(玩家数据[id组[n]],"地府救猴王5")  ~= 0 then 
	local 闯关任务id=角色处理类:GetTaskID(玩家数据[id组[n]],"地府救猴王5") 
	
    角色处理类:取消任务(玩家数据[id组[n]],闯关任务id)
    任务数据[闯关任务id]=nil
	 if 玩家数据[id组[n]].队长  then
	 self:开启地府救猴王6(id组[n])
	 
	 end
   end 
	

  end
 end
end
function 任务控制类:完成地府救猴王6(id组,任务id,序号)
 for n=1,#id组 do
   if 玩家数据[id组[n]]~=nil then
 
     self:地府救猴王奖励(id组[n],5)
   if 角色处理类:GetTaskID(玩家数据[id组[n]],"地府救猴王6")  ~= 0 then 	 
	local 闯关任务id=角色处理类:GetTaskID(玩家数据[id组[n]],"地府救猴王6") 
	
    角色处理类:取消任务(玩家数据[id组[n]],闯关任务id)
    任务数据[闯关任务id]=nil
   end

    检查高级副本(id组[n])
  end
 end
end

function 任务控制类:地府救猴王奖励(id,序号)
    --print(id)
    if 活动数据.本日副本[id] == nil then 
  
    发送数据(玩家数据[id].连接id, 7, "#y/您身上没有任务，无奖励，请重新尝试")
	
	elseif 活动数据.本日副本[id].地府救猴王  <= 0 then 
	
	发送数据(玩家数据[id].连接id, 7, "#y/今日此副本已达上限，请选择其他副本，继续参加无奖励")
	
	else 
	
	活动数据.本日副本[id].地府救猴王 = 活动数据.本日副本[id].地府救猴王  -1
	  
	            local 物品倍率 = 0
				local 奖励加成 = 1
				if 角色处理类:扣除祈福次数(id,"飞升副本加成")  then 
                    物品倍率 = 5
					奖励加成 = 1.05
                 end
	  
	  
     if 序号 == 1 then 
	  角色处理类:添加仙玉(玩家数据[id],math.floor(100*奖励加成),"地府救猴王")
	  角色处理类:添加经验(玩家数据[id],math.floor(20000000*奖励加成),"地府救猴王")
	  角色处理类:添加银子(玩家数据[id],math.floor(150000*奖励加成),"地府救猴王")
	  角色处理类:添加威望积分(玩家数据[id],4)
	  玩家数据[id].角色.副本积分=玩家数据[id].角色.副本积分 +10
	  发送数据(玩家数据[id].连接id, 7, "#y/获得了#R/10点#Y/副本积分")
	  
    elseif 序号 == 2 then 
      角色处理类:添加仙玉(玩家数据[id],math.floor(120*奖励加成),"地府救猴王")
	  角色处理类:添加经验(玩家数据[id],math.floor(25000000*奖励加成),"地府救猴王")
	  角色处理类:添加银子(玩家数据[id],math.floor(250000*奖励加成),"地府救猴王")
	  角色处理类:添加威望积分(玩家数据[id],6)
	  玩家数据[id].角色.副本积分=玩家数据[id].角色.副本积分 +10
	  发送数据(玩家数据[id].连接id, 7, "#y/获得了#R/10点#Y/副本积分")
    elseif 序号 == 3 then 
      角色处理类:添加仙玉(玩家数据[id],math.floor(150*奖励加成),"地府救猴王")
	  角色处理类:添加经验(玩家数据[id],math.floor(30000000*奖励加成),"地府救猴王")
	  角色处理类:添加银子(玩家数据[id],math.floor(350000*奖励加成),"地府救猴王")
	  角色处理类:添加威望积分(玩家数据[id],8)
	  玩家数据[id].角色.副本积分=玩家数据[id].角色.副本积分 +10
	  发送数据(玩家数据[id].连接id, 7, "#y/获得了#R/10点#Y/副本积分")
    elseif 序号 == 4 then 
      角色处理类:添加仙玉(玩家数据[id],math.floor(180*奖励加成),"地府救猴王")
	  角色处理类:添加经验(玩家数据[id],math.floor(35000000*奖励加成),"地府救猴王")
	  角色处理类:添加银子(玩家数据[id],math.floor(500000*奖励加成),"地府救猴王")
	  角色处理类:添加威望积分(玩家数据[id],10)
	  玩家数据[id].角色.副本积分=玩家数据[id].角色.副本积分 +10
	  发送数据(玩家数据[id].连接id, 7, "#y/获得了#R/10点#Y/副本积分")
    elseif 序号 == 5 then 
	  角色处理类:添加仙玉(玩家数据[id],math.floor(200*奖励加成),"地府救猴王")
	  角色处理类:添加经验(玩家数据[id],math.floor(40000000*奖励加成),"地府救猴王")
	  角色处理类:添加银子(玩家数据[id],math.floor(800000*奖励加成),"地府救猴王")
	  角色处理类:添加威望积分(玩家数据[id],12)
	  玩家数据[id].角色.副本积分=玩家数据[id].角色.副本积分 +15
	  发送数据(玩家数据[id].连接id, 7, "#y/获得了#R/15点#Y/副本积分")
	  
	  if math.random(100-物品倍率)<=3  then
	     local 随机名称 =取随机宝石()
         local 随机等级 = math.random(12,14)
         道具处理类:给予道具(id, 随机名称, 随机等级)
        广播消息( "#hd/".."#S/(地府救猴王)".."#G/".. 玩家数据[id].角色.名称.. "#y/在地府救猴王副本中，运气爆棚，获得了#G/"..随机等级.."J"..随机名称.."#"..math.random(110))
		if 是否聚宝盒(id) and math.random(100-物品倍率)<=50  then
		道具处理类:给予道具(id, 随机名称, 随机等级)
        广播消息( "#hd/".."#S/(地府救猴王)(聚宝盒触发双倍)".."#G/".. 玩家数据[id].角色.名称.. "#y/在地府救猴王副本中，运气爆棚，获得了#G/"..随机等级.."J"..随机名称.."#"..math.random(110))
		end
	  end
	  
	end
	
     local 奖励参数 = math.random(2500-(物品倍率*20)) 
	 local cj = ""
	 
	  if 奖励参数 <=50 then  
      cj = "高级内丹碎片"
	  elseif 奖励参数 <=100 then 
	  cj = "三界密录"
	  elseif 奖励参数 <=150 then 
	 -- cj = "宠物造型药水"
	  elseif 奖励参数 <=155 then 
	  cj = "幸运财富宝箱"
	  elseif 奖励参数 <=200 then 
	  cj = "装备升星石"
	  elseif 奖励参数 <=250 then 
	  cj = "特赦令牌"
	  elseif 奖励参数 <=320 then 
	  cj = "修炼果"
	  elseif 奖励参数 <=400 then 
	  cj = "高级召唤兽内丹"
	  elseif 奖励参数 <=450 then 
	  --cj = "银币礼包200W"
	   elseif 奖励参数 <=500 then 
	  --cj = "仙玉200"
	   elseif 奖励参数 <=550 then 
	  --cj = "仙玉100"
	   elseif 奖励参数 <=600 then 
	 -- cj = "仙玉150"
	  elseif 奖励参数 <=650 then 
	  --cj = "仙玉50"
	  elseif 奖励参数 <=700 then 
	  cj = "灵饰洗炼石"
	  elseif 奖励参数 <=750 then 
	  cj = "随机星光护符"
	  elseif 奖励参数 <=770 then 
	  cj = "随机月光护符"
	  elseif 奖励参数 <=775 then 
	  cj = "随机阳光护符"
	   elseif 奖励参数 <=776 then 
	  cj = "随机银河加护"
	  
	  end
	  if cj ~= "" then 
	  道具处理类:给予道具(id,cj)
	     广播消息( "#hd/".."#S/(地府救猴王)" .. 玩家数据[id].角色.名称 .. "#y/在地府救猴王副本中，运气极佳，获得了#r"..cj)
	   if 是否聚宝盒(id) and math.random(100-物品倍率)<=60  then
	    道具处理类:给予道具(id,cj)
	     广播消息( "#hd/".."#S/(聚宝盒触发双倍)" .. 玩家数据[id].角色.名称 .. "#y/在地府救猴王副本中，运气极佳，获得了#r"..cj)
	   end
	  end
	  
	  if math.random(1000-(物品倍率*2)) <= 50 then 
	  道具处理类:给予道具(id,"固神丹")
	   广播消息( "#hd/".."#S/(地府救猴王)恭喜玩家" .. 玩家数据[id].角色.名称 .. "#y/在副本中运气爆棚获得了额外奖励#r固神丹")
	  end

 end
 
end
